perm filename RES.CNV[C,JRA] blob
sn#020489 filedate 1973-01-15 generic text, type T, neo UTF8
00100 .RU KNIFER [C,JRA] ;WHAT BETTER NAME FOR A HACK..
00200
00300 TOP-LEVEL
00400 EAR_1
00500 ← ;← is the prompt character.
00600 (ADD '(TURING SUCKS))
00700 ((TURING SUCKS)(0 +)) ; The (0 +) is context information.
00800 ←
00900 (ADD '(SPIRO SUCKS))
01000 ((SIPRO SUCKS)(0 +))
01100 ←
01200 (ADD '(ME HUMAN))
01300 ((ME HUMAN)(0 +))
01350 ←
01400 (ADD(IF-NEEDED THM1(!<X SUCKS) ;This is the definition of an "if-needed
01500 "AUX"((P(FETCH '(!>X HUMAN)))) ; method"-- Conniver's THCONSE. P is initialized
01600 :L(TRY-NEXT P '(ADIEU)) ;to the result of the FETCH.
01700 (AU-REVOIR(INSTANCE))
01800 (GO 'L)))
01850 THM1 ;The method has been added to the current data-base.
01900 ←
02000
02100 (CSETQ YY(FETCH '(!>XX SUCKS)))
02150 ((*POSSIBILITIES(!> SUCKS)) *IGNORE (*ITEM((TURING SUCKS)(0 +))
02175 ((XX TURING))(*ITEM((SPIRO SUCKS)(0 +))((XX SPIRO))) (*METHOD
02187 THM1((X !>XX))((XX *UNASSIGNED))(!>XX SUCKS)))
02188
02190 ;YY is a "possibilities list referencing those "items" and "methods"
02191 ;which match the FETCH pattern, (!>XX SUCKS).
02193 ←
02200 (TRY-NEXT YY) ;TRY-NEXT strips the possibilities list.
02225
02250 ((TURING SUCKS)(0 +))
02300 (PRINT XX)
02400 TURING
02500 ←
02600 (TRY-NEXT YY)
02650 ((SPIRO SUCKS)(0 +))
02700
02800 ←
02900 (PRINT XX)
03000 SPIRO
03100 ←
03200 (TRY-NEXT YY)
03300 (*NOTE((XX ME)))
03400 ←
03500 (PRINT XX)
03600 ME
03700 ←
03800 (TRY-NEXT YY)
03900 NIL
04000 ←